package com.asset.dispoal.business.casedispose.api;

import com.asset.dispoal.business.casedispose.dto.AppointAssetBatchResponse;
import com.asset.dispoal.business.casedispose.dto.CaseDisposalFileResponse;
import com.asset.dispoal.business.casedispose.dto.CaseDisposeExecutionUpdateRequest;
import com.asset.dispoal.business.casedispose.dto.CaseDisposeFormulaRequest;
import com.asset.dispoal.business.casedispose.dto.CaseDisposeFormulaResponse;
import com.asset.dispoal.business.casedispose.dto.CaseDisposeJudgmentUpdateRequest;
import com.asset.dispoal.business.casedispose.dto.CaseDisposeMediationUpdateRequest;
import com.asset.dispoal.business.casedispose.dto.CaseDisposeNormalUpdateRequest;
import com.asset.dispoal.business.casedispose.dto.CaseDisposePageRequest;
import com.asset.dispoal.business.casedispose.dto.CaseDisposePageResponse;
import com.asset.dispoal.business.casedispose.dto.CaseDisposePreLitigationMediationRequest;
import com.asset.dispoal.business.casedispose.dto.CaseDisposeRegisterUpdateRequest;
import com.asset.dispoal.business.casedispose.dto.CaseDisposeResponse;
import com.asset.dispoal.business.casedispose.dto.CaseDisposeWithdrawCaseRequest;
import tech.mhuang.pacebox.springboot.protocol.Result;
import tech.mhuang.pacebox.springboot.protocol.data.PageVO;

import java.util.List;

public interface CaseDisposeService {

    Result<PageVO<CaseDisposePageResponse>> queryPage(CaseDisposePageRequest request);

    Result preLitigationMediation(CaseDisposePreLitigationMediationRequest request);

    Result withdrawCase(CaseDisposeWithdrawCaseRequest request);

    Result<CaseDisposeResponse> getDetailById(String caseId);

    Result<List<CaseDisposalFileResponse>> queryDetailFileById(String caseId);

    Result deleteFileById(String id);

    Result<CaseDisposeFormulaResponse> getFormulaByRequest(CaseDisposeFormulaRequest request);

    Result updateNormal(CaseDisposeNormalUpdateRequest request);

    Result updateRegister(CaseDisposeRegisterUpdateRequest request);

    Result updateJudgment(CaseDisposeJudgmentUpdateRequest request);

    Result updateMediation(CaseDisposeMediationUpdateRequest request);

    Result updateExecution(CaseDisposeExecutionUpdateRequest request);

    Result<List<AppointAssetBatchResponse>> queryAppointList();
}
